package com.situ.day6;

import org.junit.Test;

import java.util.Scanner;

public class HomeWork {
    @Test
    public void test1() {
        //String str = "----java andorid-----";
        //java.lang.StringIndexOutOfBoundsException: String index out of range: 6
        //String str = "------";
        //String str = "----java andorid";
        //String str = "java andorid";
        //String str = "";
        String str = null;
        String newStr = trim(str);
        System.out.println(newStr);
    }

    @Test
    public void test444() {
        String s = null;
        String trim = s.trim();
    }

    public String trim(String str) {
        //卫操作
        if (str == null) {
            return "";
        }

        int startIndex = 0;
        int endIndex = str.length() - 1;
        while ((startIndex <= endIndex) && (str.charAt(startIndex) == '-')) {
            startIndex++;
        }
        while ((startIndex <= endIndex) && (str.charAt(endIndex) == '-')) {
            endIndex--;
        }

        return str.substring(startIndex, endIndex + 1);
    }

    @Test
    public void test44() {
        String str = "Hello Java";
        System.out.println(str.toLowerCase());
        System.out.println(str.toUpperCase());

        String newStr = toLowerCace(str);
        System.out.println(newStr);
    }

    private String toLowerCace(String str) {
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] >= 'A' && chars[i] <= 'Z') {
                chars[i] = (char)(chars[i] + 32);
            }
        }

        return new String(chars);
    }

//    1、int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
//    求出上面数组中0-9分别出现的次数
//    双重for循环
    @Test
    public void test455() {
        int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
        int[] counts = new int[10];
        for (int i = 0; i <= 9; i++) {
            for (int j = 0; j < scores.length; j++) {
                if (i == scores[j]) {
                    counts[i]++;
                }
            }
        }
        for (int i = 0; i < counts.length; i++) {
            System.out.println(i + "出现了"+counts[i]+"次");
        }
    }

    @Test
    public void test435() {
        int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
        int[] counts = new int[10];
        for (int i = 0; i < scores.length; i++) {
            counts[scores[i]]++;
        }
        for (int i = 0; i < counts.length; i++) {
            System.out.println(i + "出现了"+counts[i]+"次");
        }
    }


    //2、int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
    //要求求出其中的奇数个数和偶数个数。
    @Test
    public void test33() {
        int[] scores={0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9};
        //int oddCount = 0, evenCount = 0;
        int oddCount = 0;
        int evenCount = 0;
        for (int score : scores) {
            if (score % 2 == 0) {
                evenCount++;
            } else {
                oddCount++;
            }
        }
        System.out.println("奇数：" + oddCount);
        System.out.println("偶数：" + evenCount);
    }

    //16、题目：一个5位数，判断它是不是回文数。即12321是回文数，个位与万位相同，十位与千位相同。
    //char[] array = {'a' , 'b', 'c', 'b' , 'a'};
    @Test
    public void test441() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String str = scanner.next();
        char[] array = str.toCharArray();
        boolean isHuiWen = true;
        for (int i = 0; i < array.length / 2; i++) {
            if (array[i] != array[array.length - i -1]) {
                isHuiWen = false;
                //找到一个反例就不需要往后找了
                break;
            }
        }

        if (isHuiWen) {
            System.out.println("是回文");
        } else {
            System.out.println("不是回文");
        }
    }

    //17、输入一行字符串，分别统计出其中英文字母、空格、数字和其它字符的个数。
    @Test
    public void test55() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串:");
        String str = scanner.nextLine();
        System.out.println(str);
        char[] array = str.toCharArray();
        int letterCount = 0;
        int spaceCount = 0;
        int digitCount = 0;
        int otherCount = 0;
        for (char ch : array) {
            if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
                letterCount++;
            } else if (ch == ' ') {
                spaceCount++;
            } else if (ch >= '0' && ch <= '9') {
                digitCount++;
            } else {
                otherCount++;
            }
        }
        System.out.println("字母出现次数：" + letterCount);
        System.out.println("空格出现次数：" + spaceCount);
        System.out.println("数字出现次数：" + digitCount);
        System.out.println("其他出现次数：" + otherCount);

    }

}
